/*************************************************************************
	> File Name: acqdata.h
	> Author: xuwenlong
	> Mail: myxuan475@126.com 
	> Created Time: 2018年03月13日 星期二 15时14分54秒
 ************************************************************************/
#ifndef __ACQDATA_H__
#define __ACQDATA_H__

#include <stdio.h>
#include <defines.h>
#include <time.h>
#include <json/json.h>
#include "data.h"
#include "acqitem.h"

class AcqData
{
public:
    AcqData();
    AcqData(const AcqItem &item_);
    AcqData(const OpValue& data_);

    AcqData& operator=(const AcqItem &item_);
    AcqData& operator=(const OpValue& data_);

    void SetCommit(int index);
    void SetVerify(int index);
    void ResetFlag(int index);
    void SetTime(const time_t &t);
    void SetId(U16 id);
//    void SetName(const char *name_);
//    void SetUnit(const char *unit_);
    time_t GetTime();
    U8 GetFlag();
    bool IsCommit(int index);
    bool IsVerify(int index);
    bool IsAllVerify(int num);
    Json::Value ToJson();

private:
    void copydata(TYPE_DEFINE type, const OpValue::Udata &udata);
    void copydata(TYPE_DEFINE type, const Udata &udata);
public:
    TYPE_DEFINE type;
    U8          flag;
    U16         itemid;//当为时间时，表示flag|长度,其他itemId

    Udata  data;
    time_t acqtime;
//    S8     name[MAX_VAR_LEN];
//    S8     unit[MAX_VAR_LEN];
};

#endif //__ACQDATA_H__
